{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x: \n",
      "[[1 2 3]\n",
      " [4 5 6]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "x = np.array([[1, 2, 3], [4, 5, 6]])\n",
    "print(\"x: \\n{}\".format(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NumPy array: \n",
      "[[1. 0. 0. 0.]\n",
      " [0. 1. 0. 0.]\n",
      " [0. 0. 1. 0.]\n",
      " [0. 0. 0. 1.]]\n"
     ]
    }
   ],
   "source": [
    "from scipy import sparse\n",
    "\n",
    "# 创建一个二维NumPy数组，对角线为1，其余为0\n",
    "eye = np.eye(4)\n",
    "print(\"NumPy array: \\n{}\".format(eye))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "SciPy sparse CSR matrix: \n",
      "  (0, 0)\t1.0\n",
      "  (1, 1)\t1.0\n",
      "  (2, 2)\t1.0\n",
      "  (3, 3)\t1.0\n"
     ]
    }
   ],
   "source": [
    "# 将NumPy数组转换成CSR格式的SciPy稀疏矩阵\n",
    "# 只保存非零元素\n",
    "sparse_matrix = sparse.csr_matrix(eye)\n",
    "print(\"\\nSciPy sparse CSR matrix: \\n{}\".format(sparse_matrix))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "COO representation: \n",
      "  (0, 0)\t1.0\n",
      "  (1, 1)\t1.0\n",
      "  (2, 2)\t1.0\n",
      "  (3, 3)\t1.0\n"
     ]
    }
   ],
   "source": [
    "data = np.ones(4)\n",
    "row_indices = np.arange(4)\n",
    "col_indices = np.arange(4)\n",
    "eye_coo = sparse.coo_matrix((data, (row_indices, col_indices)))\n",
    "print(\"COO representation: \\n{}\".format(eye_coo))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x11162ef60>]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD8CAYAAABzTgP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXl4W2ed7z+vZHmX5UXe7cSx7NhJGmdpmqYuNHRvKTQdtukGZS5QMm2nM3Qul2XmwgzLPMxlhsJMWzKdBQoUChRKCy1LW4opdbpkdXbbchLHu+Rd3i2994+jI8upndjWdo50Ps/jx5Z0JJ2cSL/vb3t/r5BSYmBgYGBgoGKK9QkYGBgYGGgLQxgMDAwMDOZhCIOBgYGBwTwMYTAwMDAwmIchDAYGBgYG8zCEwcDAwMBgHoYwGBgYGBjMwxAGAwMDA4N5GMJgYGBgYDCPpFifwEqw2+2yoqIi1qdhYGBgoCv279/vllLmX+w4XQpDRUUF+/bti/VpGBgYGOgKIcTZpRxnpJIMDAwMDOZhCIOBgYGBwTwMYTAwMDAwmIchDAYGBgYG8zCEwcDAwMBgHmERBiHE/wgh+oQQRxd5XAgh/k0I0SqEaBJCbA167B4hRIv/555wnI9BeNnT4KTR6Z53X6PTzZ4GZ4zOKHEwrn1sSdTrH66I4bvATRd4/Gag2v9zL/BtACFELvBF4HJgO/BFIUROmM7JIEzUldl44IcHA1+QRqebB354kLoyW4zPLP4JvvZ7Gpz856vOedc+EYxULEnU6x+WdQxSyj8KISoucMgu4HtS2Uf0dSFEthCiGHgX8KKUcgBACPEiisD8KBznZRAe6h12HrlzC/d+bz8l2al0DU3w+Ee2Ue+wA8qXo6ljmN07HTE+0/hDvfb3PXmAmkIrb54e4PO31FLvsAcE+pE7t8T6NOMW9fr/5Q/2s70ij5dO9CbE9Y/WArdS4FzQ7Q7/fYvd/zaEEPeiRBusWrUqMmdpEGBPg5O6Mhv1DjtSSpo6hvFMzdLc6wHgZ/s7qCm0cqp3NG6/HLEi+NoDVOVnMuv18cbpAQC+9utTvHLSxcnuUR65a0vgOIPIcKJ7lOGJWV480YtAuf6nekb5/UkXj9wZn9c/WsVnscB98gL3v/1OKR+XUm6TUm7Lz7/oim6DEFFD6D+1uPnCs8f42q9PAnBFZS5mE/zsQCfX/msD9z95IG6/HLEiOH3hGp3i5m/9Ec+Ul8tW55BmMZOVmkSjs5+6cptx3SNAcF3h10e6+fKvjpNkElQVZJBiMZFsFjy9v5MPXloWt9c/WsLQAZQH3S4Dui5wv0GMUUPo//XEW3z/dWUV/edvruVH917B9z92ORazYGhihtrirLj9csSK4PTRNf/6Cv1jM3x4xyp++pf1PHRDNUPjM+RnJtNwysULTcbXJdyowvzdxjM8+KODmASkWkx8adcl/O0Na5mc8QHw3386Pa8wHU/1hmgJw3PAR/zdSTuAYSllN/Bb4AYhRI6/6HyD/z4DDWBLszA9q3wJ/mxLCfcG1RBSLWZy0y3sdfbzvGGcwk69w05RViqjk17eWWXny7dtpNHp5tt/aOPzt9SyJj8TIeBvfnx4XlNAvBimWFLvsPPlXRv4x+eOYTYJ0pLNPP6RbQCB67+hJItZn+R/ffctGp3uuGvICFe76o+AvUCNEKJDCPExIcRuIcRu/yEvAG1AK/CfwH0A/qLzl4G3/D9fUgvRBrHnq8+fAODeqyppaHbP+wL8x4cv5YPbyjEJ+NRPDOMUbp5v6uJkzyibymwc6x4JFPgfuXMLn3ing7+5rpqUJDPTXh/PHOiIO8MUa050jyKByVkfH7tyDfUO+7zr/8x9V1KRl87UjI+HX2wO1NniJXoOV1fSHRd5XAL3L/LY/wD/E47zMAgfzx7spNHZz3vqivn8u9fxrpp8HvjhQW7cUDjvC/DE3jNMzvj49dEeAKMQHQYanW7+9qeHAfi3O7bQOTTxNsNT77DzHx++lL/4zpv85mgvL53o49G7tsaNYYolU7Nevrf3DBaz4C93OvjBG+3scOTN67pLTjLxHx/exs3f+iNvnRnkwWuq4uraGyufDRbkib1nMJvg729ZD8zlvVfnZcwzTo/dtRUh4KXjvXHnNcWKA2cHsZhNXL++MHC9H7lzC00dw/OOu2ptPrduLmV0apbLKnKN6x4m/v3lFkYmZ/nbG2p46IYaHrlzy7x1PCr9Y1NKqsli4vuvn33b43rGEAaDAGo3Rr9niuPdI7x/axltbk8gNVTvsL9trcI1tYVc6bDTPTzJLRuLDeO0QoI7YeyZKYxOzrKjMveC177R6abhlAtrShKvnOqLK8MUS5452EVhVgr3vrMSYEFhVlN3D15bzcSMj4+/Y82C4qFXDGEwCKB2Y3zl+eNMzfrYXpF70bx1o9PN0U7lC/P0/o64+WJEm0CLaqub/3ntNKtz03n0Feei1z6wuOquLXz4itV4fZL7njxgXP8VECzKx7tG6Bya4Pp1hTz+alvgmPOFWa03fPIqB7kZyRzrHlkwqtMrhjAYBKh32PnW7Zv5xcEuKvIy+Kdfn7xgakg1To/dvZXLKnKwZybHldcUTVSv9JM/2E9zrwe3Z+qC1141TPUOO7dtKcUn4bbNpXFjmKJJ8LqR779+FotJ8PyR7gs6RLt3Oqh32ElOMnHrphJeOt7H+uKsuFn9bwiDwTxSksxI4LR7jLsvX3XB1FCwcXpPXQnnBif43M21hnFaIfUOO4VZqQDcU19xwWuvGiaAtYVW1hVncbhjKG4MUzRRRfn+Jw/w033nMJnEsgr5H7i0jGmvj182dUf4TKOHIQwG8/je3jMAfPKqSn7wRvsFvf9g43TzxiJMAs4NThjGaYW82uLC2edhfXEWT711blmR167NJRxsH+Js/1gEzzB+qXfYuXR1DrM+ya7NJcuqlb3a4qI8J42f7e8I3Kf3tm1DGAwCNDrdvHCkm0tKsvjcu9ct2o2xEAXWVC5fk8evmrpQupMNlkOj0819Tx5AAg9eW7Wsaw8wMjEDwLOH5hYb6t04RZNGp5s/NrtJTzbz0onlFfI3lWfjHpvm0LkhnC5PXKwpMYTBIEDDKRc+Ce/bWgYs3I2xGHsanKwvsdLmGuN49whgGKbl0NQxzLvWFmAxC66ssi/r2gO8o9pOkknwozfbkVLGhXGKFo1ONw88eRCLWXDLxuJli3K9w86/fqAOgM/+rCku2rYNYTAIUODPb1+3rjBw30JtkgtRV2bjZwc6MQn4VVO3YZiWye6dDpp7R7msIhdrqgVY+rVXj/3olRV0D0/yuZ8fiQvjFC2aOob56+urGZv2ctXa/GWLMsC760ootqXy1pnBi9bm9IAhDAYBXj7RS3VBJqvy0pf9XHWxm8kkePL1s4ZhWiadQxOc6h3l6pqCFb/GJ69SROSpt87FhXGKFrt3OhjwTGMS8I6qucWby6mVNTrdDI5PA8TFYjdDGAwAGJmc4c3TA1wbFC0sl3qHnSsddkYmZ3lvnbHYbTn84VQfAFfXrnykfEvfKCYBq3LTL9o4YDCfhmYXm8qzyclIXvZz1ej4f99QA8BfXKn/xW6GMCQ46uKePza7mPVJrl1XsOLaQKPTzaFzQ4Cx2G25vHLSRXluGo78zBU9XzVO19YW4vZM8a3bN+veOEWLwbFpDncMsXPtykRZbdv+8BWrSbWYGBib1v1iN0MYEhx1cc9Tb54jJ93C1IxvRbWBwGK3O7eSk25h6+ocwzBdBFWUJ2e8vNbq5uqaAva29a9IlFXj9GdbSxmf9pKenKR74xQtXm11IyUrFga1bTslycxlFbm81upedipKaxjCkODUO+z8++1beK3VTWFWKg8+tbLagGqYrqy2c/maPE67xwzDdBGCN4SZmPFSlJW64oK9apx2VOYB8Hpbv+6NUyQJHoPRcMpFdrqFsSlvyF109Q47LX0e+kYmw3GaMcMQBgPs1hQkcLJndMVFy+DFbpdX5tIxOMGq3HTDMF0Atfvl4RebMQv4z1fbQi7Y52YkU1tkNSK1ixA8m+qPLS5qi6w8+FToXXRXVinCvLetPxynGTPCtVHPTUKIU0KIViHEZxd4/GEhxCH/T7MQYijoMW/QY8+F43wMlsdP9rUD8JEdq8NStFS91jfajD2XLka9w441NQmvhA/vWB2Wgv2Oyjz2nRlkatYbhjOMT1RR3v2D/bhGpzgSNN4lFDaU2MhKTeK1Vn0Lc8jCIIQwA48CNwPrgTuEEOuDj5FSfkpKuVlKuRn4d+DnQQ9PqI9JKW8N9XwMlocyOKydrNQk/nHXhmUv7lmImkIr2ekW3jitb68pGvz+ZC9uzzTbK3LD1kl0hSOPqVkfh9qHLn5wAlPvsFNXlg3An19WHhZRNpsEVzjyeK21X9cTAMIRMWwHWqWUbVLKaeApYNcFjr8D+FEY3tcgDDR1DJOTbmFHZR5CiBUt7jkfk0lwWUUurxsRwwVpdLr566cOAXDf1Y6wiDLAjjV5CKH/dEakaXS6efP0ANaUJH5xqCssorynwUmxLY3OoQnaB8YD76O3CQDhEIZS4FzQ7Q7/fW9DCLEaWAP8PujuVCHEPiHE60KI28JwPgbL4P1by+gdmeLS1TmB+8JRtNxRmUf7wDhdQxOhnmLc0tQxzM2XFAGwpTwnLKIM8KO32lmdm85e55ww6NE4RRK1i86aamZnTX7YRLmuzMYzBzsBeK21X7cTAMIhDGKB+xaLoW4HnpZSBic/V0kptwF3At8UQixokYQQ9/oFZJ/L5QrtjA0CHGgfBGBbRc5Fjlw6exqcpFmUj5aaTjIM09vZvdOB2zNNVUEmtvTlj8FYjLoyGz3Dk+w/O8jkjFe3ximSNHUM8+VdG+gfm2HLqvCJcr3Dzrf9291+t/G0bicAhEMYOoDyoNtlQNcix97OeWkkKWWX/3cb8AdgwZ3kpZSPSym3SSm35eevfHWowXz2nx0k2WxiQ0n4jEZdmY1/+W0zaRYTb7QNGIZpEaSUHGgfZOuq7LC+br3Dzl9dU8WsTxpzkxZh904HZpNi/rb4r3+42nvrq+xU2jNo7vXodjRJOIThLaBaCLFGCJGMYvzf1l0khKgBcoC9QfflCCFS/H/bgSuB42E4J4Mlsv/sIJeUZpFqMYftNesddh65awuzPslvjvYYhmkR2txjDI3PzEvjhYu7d1QA8MzBTt0ap0hz8JzqFGWF9XUbnW66hpR1DHqdmxSyMEgpZ4EHgN8CJ4CfSCmPCSG+JIQI7jK6A3hKzi/VrwP2CSEOA68AX5NSGsIQJaZmvRzpGGZbRW7YX7veYWf7mlyGJmZ435ZSwzAtwIGzShpv66rwC8Ox7mFMAhz5GcbcpEU42D7E+pIsUpLC5xSp0fGnrq8G4JM7HbqcABCWdQxSyheklGullA4p5Vf9931BSvlc0DH/IKX87HnPa5RSbpRSbvL//u9wnI/B0jjaOcy01xcRw9TodAfytcvdjSxRONA+RFZq0ornIy2Gapwur8xjcsYXtsJqPDHr9dHUMRRII4ULdQLA7dtXATAz69PlBABj5XMCoo4D2O/3WC9dnRPW4rBqmL7555sBuPmSIsMwLcDB9kE2r8rBZFqof2PlqMbpmpoCOocmWFto1aVxiiQne0aZnPGxJcxOkToBICvVQmV+Boc7hnU5miQp1idgEH3UcQCV+RmszkunpW80UAcIB01Bq0gr7RkMTcwEDJORUlIYnZzhVO8oN/nbVcOJaoRMQhGcIx3DXF1bYFz7IA76pwBvKQ9vxBDMprJs/tTqRkqJEOEV/0hjRAwJSL3DziN3bGH/mUHSLOawF4eD5yZtLLNxtFOfXlMkUKO1w+eGkVKpL0SqlfeSUhtCYEQKC3CwfRB7ZjJlOWkRe49NZTZco1P06HCgniEMCUp5bnrIg/OWwsZSG93Dk7hGpyLy+npDjdZ+cagTIWDau7Ix50shM0WpXzR1GKMxYP5E1UPtQ2wuz1nxmPOlUOePRg6f058wG8KQoPz8gLI684PbyiLatbKxVDF4Rzv19+WIBOpCqmcPdZKTbuH/PN0U0VbeujIbTZ3Dup7bEy5UUf7dsR7a3GPkZSRHdH3N+uIskkxCl8JsCEMC0uh08+0GJwL40q2XRLRrZYM/nXHEEIYA9Q47SSYTA2MzEV9jUFeqpDN6R4yITRXlh35yGIAXjnZHVJRTLWZqi60cNoTBQA80dQyzvtiKoyCTtGRz2MYBLERmShJr7BlGnjuIF450MTHj5Z3V9oivMdjonx6qR+MUCeod9sCCtruisPCvriybpo5hfD59RWyGMCQgu3c66B6enLfiM5LF4bpSm5FK8tPodPOZp48AcP/VVRFfY7ChJAuzSXDEEGZAuf4H2gfJTrPwk32R3Zd8T4OTzGQzo5OznOkfC7y/HmaGGcKQgAyMTb9NGCLJJaU2ekYm6RvVX3dGuGnqGObddcUArCvOimi0Bko6Y22hlSZDmAPra7LTLVxZZY+4KNeV2fjxPmXwdFPHsK5mhhnCkIAc7xoBYH1xdD6g6mYoRtSgRGtjU7OU5aRhSwvfRNXF2NPgpNCaQlPHUKAArRevNdw0dQzz9Q/U4RqdZl2xNeKirLz+VgC+85q+Jq0awpCAHOtSvgjRihg2lGQpBeiOkai8n9Y53j3C+uLoXPu6MhtvnhlgaHyGjsEJXXmt4Wb3TgdZfjFe57/+kV5f887qfIptqRzuGNbVMENDGBKQY10jlNhSyclIjvh77WlwcrhjCEd+Jkc6lQJoonqsAOPTs5x2j7E+SqJc77Dzd+9eB8BXXzihK681EgSi5Shd/0anm4GxaZLNQlfDDBNCGIIXtqgksnE63j3C+jDuv3Ah1N7xoqxUjnTqK88aCU72jCIlUYsYAD6wrQwB/OZoj6681khwonuE7HQLRVmpEX8v9bN+945VTHsl//De9bqZGZYQwqAaJ/U/JJGN08S0lzaXJ6oe6yN3buFA+yC9I1Pc9+QBw2Mleh4rKHtumASssafrymuNBCe6R1hXlBWV2UXqzLB3bywBID05STfDDBNCGFTjdO/39vOxJ95K6HD6RM8IPhm9+gIo1//GDcqwuHetzU/I665yvHuErNQkSrMjN6MnGNUJ2l6Zx/SsTOgR3LNeHyd7RqMmyurMsJoiKwAne0Z0MzMsIYQBFONUYE3h5RN9CR1Oqx5rNIWh0enmlVN9APzueG9CGiWV410jrC+JjscKc17rO6rsdA5NsLHUphuvNdyc6R9jatYXKDxHi8yUJMpz0zjZMxrV9w2FsAiDEOImIcQpIUSrEOKzCzz+USGESwhxyP/z8aDH7hFCtPh/7gnH+SxEo9NN1/AEAv1utxcKap3lWNcItjQLpdlpUamzqB7rY3dtJd+awraKnIT1WL0+ycmekai1CcOc11rr91qbe0d147WGm+PdimFeV2yN+nvXFmUlljAIIczAo8DNwHrgDiHE+gUO/bGUcrP/57/8z80FvghcDmwHviiECPt2YqpxuveqSiTw6RtrEs44qXWWN9v6WV+cxd62/qjUWYL3ZqgptDI4NpOwHutp9xiTM76o1hdU1HTGiW79GKdwc7xrBItZUF0QfWFYV2SlzeVhcsYb9fdeCeGIGLYDrVLKNinlNPAUsGuJz70ReFFKOSClHAReBG4KwznNQzVO761TikBpyeaEM071Djvfun0zTvcYkzPeqNVZgvdmqCmy0tw7yuVr8hLKY1WjtePd6sLCrKh3xZVmp2FNSeKUjrzWcHOiewRHfibJSdHPoNcWZ+GT0Nrnifp7r4RwXKFS4FzQ7Q7/fefzfiFEkxDiaSFE+TKfGxKqcaqwZ5BsNnGqx5OQ4bTaonfw3FBM6iw1RVamZn2c9c+NSRTUaO3FY71YzAK3ZyrqXXFCCGqKrAkvDNFsEw6mNhCx6WORZziEYaEq2vmjBH8JVEgp64CXgCeW8VzlQCHuFULsE0Lsc7lcKzpRi9lEZX4Gp3r08Z8Tbn7Z1AXA7ZeVx6RtMTjPnUioXXG/OdaNLc3C3/z4UEy64mqKrJzoGUmovRnUaM3tmaJvdIr1JdGP1gBW52WQajHpps4QDmHoAMqDbpcBXcEHSCn7pZTqQPj/BC5d6nODXuNxKeU2KeW2/Pz8FZ9sbZGV5l59hHPhpNHp5vE/nkYA/3Drhpi0LVYXWBEC3Xw5wkm9w47FbMLtmY5ZV1xtkZXRyVm6hxNnmKEarf1sfwcAPiljsobJbBLUFFo5qROnNBzC8BZQLYRYI4RIBm4Hngs+QAhRHHTzVuCE/+/fAjcIIXL8Recb/PdFjLVFVjqHJhidnInk22iOpo5h6kqzqLBnkGqJ7B4Mi5GWbGZ1bnpCpjNePNbL+LSXKx15MVtkVutPo+jFOIUD9XP+zZdaAHjsD86YrWGqLcriRPeoLiK2kIVBSjkLPIBi0E8AP5FSHhNCfEkIcav/sAeFEMeEEIeBB4GP+p87AHwZRVzeAr7kvy9i1BQmZjpj904H7rFpqgsyA/fFos6SiHnuRqebh356CICPv7MyZovM1haqC60S6/rXO+yszksH4CM7VsdsDVNtsZWBsWlcHu3vpheW8ryU8gUp5VoppUNK+VX/fV+QUj7n//tzUsoNUspNUsqrpZQng577P1LKKv/Pd8JxPhdCbds71ZNY6aSpWS9n+8cD//5YUVOUxZn+Md207YWDpo5hPrStDIDqwsyYRGsAtjQLJbbUhBTmlj4P5TlpMYvW9jQ48fp3cTvpbxnW8ry2hFn5rFKanUZGsjnhCtBtrjG8Pkl1YWyFobbIik9CSwLVeXbvdOD1QUayOTAKI1ZdcbXFWQHDlAg0Ot088ORBzEJw7brCmEVrdWU2HnmlFYBTPaOan9eWcMIghGBtkZVTCZZKUlNnawszL3JkZAmeG5NINPeOUlVojdoojIXY0+AkMyUJp8vD9KwP0LbXGg6aOob54nvXM+31sbYw8pvzLEa9w85jd21FCPjZgQ7Nz2tLOGEAxWs91aOPIlC4aO4dJckkqLTHVhgq8jJITjIlXI2nudczr74TC+rKbLx8spdZn6TN7dG81xoOdu90YE1LApQ0HsQuWqt32CnPSedkz6jm57UlpDCsLbQyOD6jiyJQuGju9SgL/GKw6lNlT4OTN073U12QGSiAxrvHCjA4No3bMxXzaK3eYecL79kAwDd+16x5rzVcqGnLtTEYhRFMo9NN38gkZgE/eF3b488TUhjUdEZzAhWgm3tHY26Y1J7y3IxkXeRZw0WLfwxCrOs7AO/bWopAmXKrda81XDT3eiiwpmBLt8TsHNTP+keuWI1Xwhc0vmlPwgnDngYnIxPKGga1zhDvXuvEtJf2gfFAu2KsUPO7+84O0jeaOJv2zNV3Yi8Mb50ZQAhYY89ImE17WvtGA2mkWKHOa7vxEmVJlzVV25v2JJww1JXZ+PwzR8lKTeJUz0hCeK1OlwcptWGY6h12rl9XCMC1tQVxLwoALb2jZKYkUWKL/HaSF0L9rG9brQwwToRNe3w+SUufJyYTVYNR57VV+etMLX3anteWcMKgeq3j014aTrkSIs+q9q3HOpUEinH6Y7My6+rXR3vi2iipNPd6qCrIjGlHEsx5rZdX5nG2f4xLV+do2msNB51DE4xPe2MeMajY0iwUWFM0P2U14YQBFHHYUJJF7+gUdyVAnrW5b5Rks4nVeRkxPQ/VY330zq2kWcxcVW2Pe48VoKUv9vUdmO+1+iSccY9r2msNB6oB1kK0rFJdmBmoO2mVhBQGdSUkwPf3xv9ubi29HirzM7CYY/vfrXqsV1Yrxmls2hv3HuvA2DRuz7SmDNNcOiP+W4bV+k6sW4WDqS6w0tqr7Xb5hBMG1Wt96Pq1AOx+lyNuvVZ15PCpntFAR0wsC+3Bm/ZUFWTSqvE8azhQDVOVhgyTIz8TIfSzaUwotPR5yLemkJ2eHOtTCeDwO0VannKbcMKgeq27Niv7ASWbTXHrtdaV2bj/yQN0Dk1QU5ipqUJ7VUEm3cOTeKZmY30qEaVFg6mMVIuZ8px0zaczwkGLBtq0z6c6qACtVRJOGFSv1Z6ZjC3NQqsrfr3Weoc9EBmd6B7VVKHdka98OZwa/nKEghqttfSOYk1JotiWqqm26OqCzLi99ipSaqMj6XxUYdByxJZwwqAihAikM+KZtGRlHMDzR7o1taBJ7RKJ1+uvLuZ768wAVYWZ7G3r10y0BkrE1uYaY9bri/WpRAytdSSp5GWmkJuRTKuGazwJKwwAVfnx7zWpraH3X+3Q1IKm1bnpWMxC0+F0KKht0Se7R5ma8WkqWgNFGKa9Ps4NTsT6VMJOIFpTV5wXWDUVrYFie7Q8YTixhaEgk/6xaQbHpmN9KhGh0enm10e7KclO5dM31mpqQVOS2URFXkbcRgwA64qykMDx7hFNRWsQ1JkUh8MM1WjtxeM9AAyPT2sqWgOo8resarUzKSzCIIS4SQhxSgjRKoT47AKPPySEOC6EaBJCvCyEWB30mFcIccj/89z5z40k6pej1RWfxqmpYxh7Zgp1pdkAMRs5vBhVBZk44/TaAzx7uBOA924q1lS0BvH92Vc/50/v7yTNYuYzPz+iqWgNlDrD8IR2B3mGLAxCCDPwKHAzsB64Qwix/rzDDgLbpJR1wNPA/wt6bEJKudn/cytRpEoHRaBQ+Ng71uAancJRMLewTUuF9qqCTM72jzE1G3+7uTU63Xz9N6cA+PQN2orWAKypFoqyUmnVcDojFOoddnLTLUzMeDUXrQGBgrhWbU84IobtQKuUsk1KOQ08BewKPkBK+YqUctx/83WgLAzvGzKl2WmkWkya/c8JlbP9Y8z6pKZ66IMJXoEbbzR1DHN1bQHJSSZKc9I0F62B0gAQjxEDQGOrm96RKS4pzdJctLanwcnwhJK+Vm2P1mog4RCGUuBc0O0O/32L8THg10G3U4UQ+4QQrwshblvsSUKIe/3H7XO5XKGdsR+Tf+OaeBWG1r4xYK41VGvE8wrc3TsdTEx7qbRnYDYpM5K0FK2B8rlo1XCee6U0Ot3c98MDSOB9W8o0F63Vldn4v88eI81ioqVXmxsmhUMYFpoMtuAnTQhxN7AuhSG/AAAgAElEQVQN+HrQ3auklNuAO4FvCiEW/OZIKR+XUm6TUm7Lz88P9ZwDxHPLqpq/r9SoMMT7CtxWlweHRqO1PQ1OzCYYn/bS5V+BqzWvdaU0dQzzV9dUAcr3W2vRmno+M17J70/2aq5jDcIjDB1AedDtMqDr/IOEENcBfwfcKqUMVFyklF3+323AH4AtYTinJVNVkOnvd46/FbjOPg/FtlQyU5JifSoLkmoxU5aTFpfCMDnj5dzAuGajtboyGz/Z1wEowqxFr3Wl7N7pIM2ifOZVYdZatFbvsFNdmEnn0KQmayDhEIa3gGohxBohRDJwOzCvu0gIsQX4DxRR6Au6P0cIkeL/2w5cCRwPwzktGTWd0eYai+bbRoVWl0ezhkntNa8usGo2zxoKZ/vH8Ulw5Md2ou1i1Dvs/MsHNwHwn39s06TXGgpOl4c0i5nirNjugbEYjU53oLb2/de1N8gzZGGQUs4CDwC/BU4AP5FSHhNCfEkIoXYZfR3IBH56XlvqOmCfEOIw8ArwNSllVIVBNZzx5rVKKXH2eTRbeFZ7zdOTzbS5x/hTS/x4rDD3edKqMAPcuKGIVIuJP7W6Nem1hkJrnzJR2GSK7R4YC6FGZ/ddrUQwf3P9Wk3VQADCkmOQUr4AvHDefV8I+vu6RZ7XCGwMxzmshD0NTtYVWzGJ+d0BTR3Dmgo7V0LPyCRj015Ne6yP3LmFTzyxj+lZH/f/8ADfvntr3Bgntb6jZWFodLqZ9UpKslP5wRvt7HDkxdX137oqJ9ansSDqIM+irFT+9XfNZCTPbfOpleuf0Cuf68psfOrHhymwpsZdntWp8Y4kUMTh5o3KHrhXVds186UIB06Xh9LsNNKSzbE+lQVRP+vvqLIzPevTXOdOKExMe+kcmtDsZ18d5FnuHwvj1OAgz4QWBtVr7R+b4o3T/XGVZ1U9Vq2mkkAxTi+f6AXg5ZN9cWGUVFr7tNuRBHNea31VHm7PNBuKbZrq3AmF0+4xpGTewk4tYjGbWJWbrsl5bQktDKCIQ11pNoPjM9y5vTwuRAEUw2RNSSLfmhLrU1mQwDafd20lLyOZy9fkxo3H6vNJ2lxjVGnUY4U5rzUw/tytPa91peghjafiyNfmWJiEF4ZGp5uTPSMAfP91ba2QDAWnv4c+1hvQL0bAY/UbJ8/UbNx4rN0jk0zMeDXvscLcGhcteq0rxenyIASssWv/+jsKMjnbP86MxsafJ7QwqF7rp2+qBeAT71yja69VbQEFfyojP1OzLaDB23w6CjJoc43Fjceqh44klfKcNH+eO37atZ2uMcpz0km1aLO+E4wjP5NZn+TcgLbGwiS0MKhe622bSwAl56dnr1VtAX3pRC99o1MkmYUuiumV9vgaf+7UkTCo48/bNJjOWCnOPo9mu/HORz1PrQlzQguD6rVmpyeTl5Gse69VLaY/9ONDADzf1K2LYrqacmlz69s4qRGb0+XBlmbBnpms2YgtGK3muVeCzydpc2t3Yef5BFJ5Grv+CS0MwcTLl6PeYWf7mjwAbttconlRgKD9nzXmNS0XNWI70D6IIz9Dc9t5LkZlfoYm89wroXNogskZn6Y7woJRHIgUzdV4DGHw4yjIoM2tb8MESt3kT60uBMo+z3qol5TlpJNsNulemIO385yY8eqm/VnNc7drLM+9HIKjNUDT9bXzceRnaO6zbwiDn0p7JgM6z3OrxfRLSm2syc/g0bu26qKYbjYJKuzpcTGvakOJDQmc6B7VzZgJRxzMC1OjtZdPKKPYBsamdBGtgXL9na4xTY0/N4TBTzzkudVi+vD4DJV27Y0bvhCV9vhI5T17SNnO8z112tvOczEqAwVQ/V5/9bP+k33nSEky8flnjuoiWgMluhmemGFAQ06pIQx+Ku1qP7d+vabdOx1sr8jlbP94QOj0Ukx3FGTQrvM8d6PTzT//+iQAn7p+rW7GTGSlWsi3ai/PvVzqHXbsmclMzfp0E62BNjuTDGHwU5aTpuS5dRwxAHQMTjDt9eGw66P4phIPee6mjmGuW1dIkkmwKjddVxGbI1//NbZGp5uu4UnWF1t1E61BcPOFdmyPIQx+kswmVuel6zpigLlUmB5W3QYTDytwd+90MDnrZVVeOhaz8tXSTcSm820+G51u7n/yAFLCrZtLdROt7WlwcrZ/nJQkU+Czr4WiuSEMQTjyM3VdY4C5VFilziKGSg2G0yuhzTWmu2sPijBrLc+9HJo6hnno+rWA8j3WS7RWV2bjwacOUmBNoc09ppkJz2ERBiHETUKIU0KIViHEZxd4PEUI8WP/428IISqCHvuc//5TQogbw3E+K6UyX/957ja3h9yMZHIykmN9KssiK9WifDk0FE4vl1mvjzP9Y7qL1vY0OJme9QIE0kla8FqXw+6dDtKTle1lVCdDD9GaKmC9I1PsOzOgmRbnkIVBCGEGHgVuBtYDdwgh1p932MeAQSllFfAw8M/+565H2Qp0A3AT8Jj/9WKCmuc+26/fPLezb4xKHQwPW4hKDfZzL4eOwQlmvFJ39Z26Mht7GtoAJZWnFa91ubS5PYH6jp6od9jZXG5jZHKW2y/TxoTncEQM24FWKWWblHIaeArYdd4xu4An/H8/DVwrlLGfu4CnpJRTUsrTQKv/9WLCXD+3fo2TnsYBBLOnwUlGctK8fm69ea16re/UO+w8dudWAH781jnNeK3Lxdk3Nq++oxcanW6OdSsTnp/USNE8HFewFDgXdLvDf9+Cx/j3iB4G8pb43Kih9zz38PgMbs904N+hJ+rKbOxt6w/kufXoteq1vgNwZbWdvIxkDp4b0lWrZzB6dIrUz/nnb14HwF/UV2iiaB4OYVho4P/5rQ2LHbOU5yovIMS9Qoh9Qoh9Lpdrmad4cfY0ODnaOUx+UJ5bbx6r2mqrty8HKF7rX11TBcA/vXBCl16rXus7oHzWRydnsaUl6arVU8Xrk5xxj+vOKQpMeN6i+MNJZqGJonk4hKEDKA+6XQZ0LXaMECIJsAEDS3wuAFLKx6WU26SU2/Lz88Nw2vNRl9TnZSTjdOkzz6q2u+nty6Hynjpl/PnPDnTq0mvVa31H/azfUlfE6OQsD//5Jk14rcuhY3Bcl+t31AnPGSlJFNtSNTPhORzC8BZQLYRYI4RIRikmP3feMc8B9/j//gDwe6kkkp8Dbvd3La0BqoE3w3BOy0btDjjtHuNY14hOPdYxkkyCcp0V31Ta/UX/LeXZuvRa9ZjKgDmv9V01BfgklNjSNOG1LofA8Dyd1XeC0VLzRcjC4K8ZPAD8FjgB/ERKeUwI8SUhxK3+w/4byBNCtAIPAZ/1P/cY8BPgOPAb4H4ppTfUc1opysjqXKZmfbxvS6muRAGUiGG1DotvoHitf/XUQcpz0sjJSNbNAiUVPdd3VK81MBbGpb/9n9UBgHqs76g48jNp08gwvbBYECnlC1LKtVJKh5Tyq/77viClfM7/96SU8oNSyiop5XYpZVvQc7/qf16NlPLX4TifldLodHOwfQiAH+87pxujpNLmHgusINYbqtdaV55Nm98w6clr1XN9R0XPzRdO15hu6zsqlfYMRqdmcY1OxfpUjJXPKmqe9au3XQLA7ZeV68JjVefQz3p9nO0f09Uc+mBUr9WRn0n7wDhTs15dea16r+8AgTy3VtIZy8Hp8uiyvhOM2i6vBWE2hMGP6rG+Z1MJKUnKZdGDx6oWzZ873MWMV+KTUndF82Ac+Rn4JLpbZKj3+o6KkueOvWFaLm2uMV1Ha6CtbT4NYfCjeqxmk2CNXfly6MFjVVMuX3j2GABPvdmuu6J5MA6dDdML7BwWVN/RY8Sm4sjPpE1nw/SGJ2Zwe6Z0Ha0BFGelkmYxa2LDJEMYFkDZUUkfhgkUcdhUrkQIWllSv1LW2NUNk2L/5VgKasR2tGuYSn8aT98RW6aS5/bEPs+9VNpc+q/vAJgCTmnsbY8hDAvgyM/k3MA4kzMxa5BaFo1ON/vODJJmMfH0gU7N10UuRCDPrZOIod5h51u3b6ZraJIBz7Qu25yDCRSgdTB+fm6fZ39HUn6GrqM10I5TagjDAugpz616qKvz0tlYlq27Ns+FcORr48uxVMpylLrC/vZBXS7MC0b1uvUwfl6N1l5tdmExCzqHJnQdrYHSmdQ5NBFzp9QQhgUIfDl0YJzUorlrdEpXc+gvhCM/QzP93Evh+SZlsf4Ht5XpcmFeMEX+PLceIgb1s/7C0W4yU5L466cO6TpaAyVikBJOxziVagjDAqh5bj14rbt3OqgptDI4PhPYO1YPRfML4SjI1Ew/98VodLp59BUldfH3t6zXfcRmMglNrcC9GPUOO5kpSQyOz+g+WoO5/Z9jXYA2hGEBMlKSKLGl6qZtTz1PtQ9a76irV1t1YJyaOobZviaHfGsKtjRLnERs+tnJ8NUWF4PjM1y6Okf30Rpoxyk1hGERtFIEWgrqeVbpvCtDRZ13E2uvaSns3ulgdHI24OmB/iO2yvwMOgZjn+e+GGp9DeDO7at0H63taXBy6NwQpdlpMZ/wbAjDIjjyM3HqpJ/b2echJclEaXZarE8lLBRlpZKebNaFMEspccbB4qpgHPnayHNfjKaOYT72jjWA4sjpPVpTi+m5GRacrtju/2wIwyI48jMYm/bSp4M8t9PloTI/E5Npoe0t9IcQQjcrcN2eaYYnZuJGGPY0OPFMzgJzEZtWW0B373SQZFY+8/FQX1OFrbnXw4nu2E54NoRhESp1tAJX8Vj1verzfNSITesE0nhxUt+pK7Px/357EkAX+5I4+8YozErBmmqJ9amEhXqHnSsq85j1SXZtLolZMd0QhkVwaGhuyYWYnPFybnA8bjxWULxWi9lE1/AEE9NKnlurXuvcPgDxcf3rHXYevWsrJgG/aurS/II9p8sTN6IMyud8f/sgAE/v74hZvcQQhkUozEohI9ms+XTGmf4xpIwfwwSK1/qboz2BPLeWvVZn3xhpFjPFWamxPpWwUe+wU5aTTnOvR9MtoFJKnH363BxpIdTP+T+/fyMAf7alNGbFdEMYFmBPg5O9bf3zOpO06rG29sVXRxIohunvb1E2R/+3l1s07bW2ujxU5mfETX0HlM9638gkZhP84HXttoC6RqcYnZqNG2FQF6vefEkxWalJeH0yZsX0kIRBCJErhHhRCNHi/52zwDGbhRB7hRDHhBBNQog/D3rsu0KI00KIQ/6fzaGcT7hQuwOyUi20xbg74GI4+8YQYq7/OV5QN0f/zbEeTXutzr74S2U88MOD3LVjNV4ffPG96zXbAhpwiuLk+qsTnoUQVBVk0toXu530Qo0YPgu8LKWsBl723z6fceAjUsoNwE3AN4UQ2UGPf1pKudn/cyjE8wkLanfA/rODdA5NcP+TBzTrsTpdHkqz00hLNsf6VMLKgfZBTEL50mt14dLEtJfOoYm48Vhhzmu9cUMRAFnpFs22gDrjZKrqQlTFeB1VqMKwC3jC//cTwG3nHyClbJZStvj/7gL6gPwQ3zfi1DvsXF2jnOaNG4o0KQqgfDni7Yuheq2byrIxC6HZhUttcbCd5/moXmt1wVxXnlZbQFv7PGSmJFGYlRLrUwk7VQWZuD3TDI1Px+T9QxWGQillN4D/d8GFDhZCbAeSgeBk/Vf9KaaHhRCa+R9udLp5zdkPwC+bujRnlAB8PhkXO1edj+q1bq/M5bR7jO0VuZr0WuMtlRFMTkYyeRnJtPRqtytPbdMWIn7qOyrqZ6o1Ri3bFxUGIcRLQoijC/zsWs4bCSGKge8DfyGl9Pnv/hxQC1wG5AKfucDz7xVC7BNC7HO5XMt562WjeqyP3LmFJJPgutpCTXms6hz67pFJJma8OAr0P4c+GNVrrcrPZNrro31gXJNeq9M1hknA6jx9b+e5GI6CTE3Pq2rt88RVN14wVflWQMPCIKW8Tkp5yQI/zwK9foOvGv6+hV5DCJEFPA/8vZTy9aDX7pYKU8B3gO0XOI/HpZTbpJTb8vMjm4lSPdZ3Vuezxp7B+IxXUx6rWhz/5WFl3PPkjFezxfFQqC6M7ZfjYjhdHspz00m1xFd9R0UtgGpxLIxnapaekcm4i5ZVSnPSSEkyaVcYLsJzwD3+v+8Bnj3/ACFEMvAM8D0p5U/Pe0wVFYFSnzga4vmEBdVjBWLeHbAQanH8315uAeDff9+q2eJ4KKiruVs0JgzB+zyrhimeIjaVqvxM/37KsclzXwhnHKfxAMwmQWUMN6wKVRi+BlwvhGgBrvffRgixTQjxX/5jPgRcBXx0gbbUJ4UQR4AjgB34SojnE3aqCzI52z/G1Ky2Jk3WO+yBFtUP71gdd6IAYE21aHKbz7oyGw88eTDQqqrlduZQqC6MbZ77QsRzR5JKVQxTeSEJg5SyX0p5rZSy2v97wH//Pinlx/1//0BKaQlqSQ20pUopr5FSbvSnpu6WUmruE1hVaMWnwUmTjU43p3pGKbGl8qRG2znDQVVBpuYihnqHnS+8dz0zPklrn0fTC/BCYa4AOhrjM5lDjdZa+zwkmQSr89LjMloDJWKL1fhzY+XzRVDb9rTUnaF6qClJJq6uLdBsO2c4UPu5fT5t5bkzU5IA+P3JPk0vwAuFoqxUMlOSNBUxqPW1N88MsDovnbfODMRltAbKZ1/K2MxrM4ThIqyxZ2AS2spzN3UM85VdGxib9lIdB3PoL0RVQSbj0166hidifSrzePFELwCfvKpSswvwQkUIgSM/Q1OdSepn/cDZQaQkbqM1iG3LqiEMFyHVYmZVbrqmwundOx3Y0pMBWOvv3NFScTycVBdorzOp0enmmYOd5GZY+Ny718V1xObwN19oiUtX5yAltLnH4jZaA6iwp2MSsRn9bwjDEqgqsGruy9HcqwhVVWH8Ft8g9gt9FqKpY5gSWyqXlCqTXeI5YqsusNI7MsXI5EysTyXAMwc6kcCNGwrjNlrb0+Bk/9lBVufNRWzRrKUYwrAEqgszOe0eY8bru/jBUaKlz0N2uoX8TM0sFo8IuRnJ5GYka0oYPvHOSrqHJ1kb1CoZrxGb1oS50enmy88fB+BT16+N22hNraXkpCuf/Wh3vhnCsASq8jOZ8UrO9o/H+lQCtPSOUl2QGZfjAM5Ha51J5wbGmZr1BdJ48cqeBiej/khBFYZYdwA1dQxz/bpCzCbBGntG3EZr6r/rePcwrX2eqA/yNIRhCcz1c2ujziClpLnXE1gZHO9obQWumsarjvM0Xl2ZjS//6jhJJoEzBl7rQuze6WBs2ktFXjopScqK83iN1uoddt5ZlY9Pwi0bi6NaSzGEYQmoi2i00rLq8kwxPDETaKWNZ/Y0OEkyCYYnZnB5poDYe60tcb7qVkXd5lNK+O2xHs10ALX0jlJTFP9OUaPTzRunlUGevzgU3UGehjAsgYyUJEqz0zTTttfqF6h4T2WA4rU+c7ATICa51oVo7lUWFsbLBvQXot5hpzI/gzP945roAJqc8XJ2YDzQrRavqJ/zf7tjCyYBN6yP7iBPQxgugrrSsqogMxAxxNpjDaQy4txjBcUwfe19yh64/9HQpgmvNZHSeI1ONx2DyhqS779+NuZFXiWlGP9OkTrI8101BVTkZTAR5UGehjBcBLU7ICPZjNPl4U8tsfdYW/o82NIs5FvjuyNJ5d0bi0k2CxqaXTH3Wr0+idPlYW2c1xdgzmu972olf//X162NeQeQ6hTVFMX39Q8e5Lm20MqpntGo1lIMYbgIandAQ7OLqVkf9/8w9tt8tvR6EqYjCWBvWz8+CcW21Jj3rbcPjDM960uIiEH1WndtUvbfTjabYt4B1NzrwWIWrM6Lrz3OL0RNkZUz/WNRnZlkCMMSqHfYeXddMQDvqLLHVBSklDT3jSaEYYI5r/XqmgI8k7M8ckds+9ZVjzXeUxkw57WW5aSRnmymuTe6XutCNPeOUmnPxGJOHNNVU6QM8ozmWpLEuboh0Oh089JxZTbO70/2xcQoqbUOZR9YpSMp1rWOaKB6rTtr8hmdmmVVXnpMvdaWBKrvqJhMgrWFVk72jMT6VGjuHWVtAnQkBaM6Iad6otcubwjDRVA91kfv2kpFXjobS7Ni4rGqtY5fHOoAYNbri3mtIxqoXmtt0dyXI5Zea3Ovh9LsNDL801UThdoiJc8dy7UkY1OzdAxOzFtxnghU5KWTnGQKRKvRwBCGi6B6rIpxysLlmY6Jx6rWOh5+Udm17bE/OGNe64gmqpd4MopeUzBqxNbcOxooPCdCxKZSU2RlcHwG1+hUzM5BXT+SKGlUlSSziar8zKh+9kMSBiFErhDiRSFEi/93ziLHeYN2b3su6P41Qog3/M//sX8bUE0R3B1QW6wUgTaXZ8fEY523a9sV8blr22JkpVoozU6LmTDUldm4/8kDtPZ5WFto1cR6imhSE2NhhuCOpMQSBlD+zXqKGD4LvCylrAZe9t9eiImg3dtuDbr/n4GH/c8fBD4W4vlElNqiLKSM3QroRqebkz2jlGbH965ti7Gu2MqpGOW56x12/u6Wdcz6JE7XmCbWU0STmhjkuVXUaK2ld5SUJBOrcuN317bFqCmy0j08yfBEdKbchioMu4An/H8/Ady21CcKpdfyGuDplTw/FqwrVr2m6BunRqebB548iEnAjRuK43aq5IWoKbLidMVu/+00i1JXeOlEb8zXU0SbvMwU7JkpMYkY1PraG6cHcORn8sbp/oSK1mBOmKMVNYQqDIVSym4A/++CRY5LFULsE0K8LoRQjX8eMCSlnPXf7gBKQzyfiFKek056spkT3dH/cjR1DPP5W2qZ8UrWFVvjdqrkhagpylIWmPXFZv/t3x3vAeC+dzlivp4iFtQWWTnVG32nSP2sH+0cxuvzJVy0BnM1tmhFbBcVBiHES0KIowv87FrG+6ySUm4D7gS+KYRwAAutzlq05UEIca9fXPa5XK5lvHX4MJkENUWxadvbvdMRmCa5rjgLiN+pkouxTv1yxMA4NTrdvHCkm/KcNP7PTbUJG7G19HrwxmD/7dqiLHwSTvV6Ei5aA5TZXClJ2hEGKeV1UspLFvh5FugVQhQD+H/3LfIaXf7fbcAfgC2AG8gWQqh9f2VA1wXO43Ep5TYp5bb8/Pxl/BPDS22RlZMxats70T1CkknE/bjnxaiwZ5BsNnEyRhFbZkoSl63JBeJ717bFqCmyMjXr42x/9CO2p/edA+C2zaUJF63taXCyt62ftUVWTvlTSZGusYSaSnoOuMf/9z3As+cfIITIEUKk+P+2A1cCx6ViWV8BPnCh52uN2qIshsZn6B2Jftveie4RqgoyA5FDomExm3AURLdtT+UDl5YxOD7Den+0BokXsdVGOZ2h0uh08/BLSpv2F9+7PuGiNbXGkp1mobl3lMbWyHfEhSoMXwOuF0K0ANf7byOE2CaE+C//MeuAfUKIwyhC8DUp5XH/Y58BHhJCtKLUHP47xPOJOOqX40QM0knHu0cCaaREZZ1/oVW0OdGt/H+vL0nM67+nwcmAZxoh5lpWo9UZ1NQxzJZV2ZTYUsnJSE64aE399+5t62dofIb7orCbW0jCIKXsl1JeK6Ws9v8e8N+/T0r5cf/fjVLKjVLKTf7f/x30/DYp5XYpZZWU8oNSytitnlkitUWKYYi2cRoYm6Z3ZGqex5po7Glwkmox0TMyydD4NBA943S8yy8MCXr968psPPTTwxRaUznVMxrVdRy7dzroG52aJ8qJFq3VO+y8d1MJALdtKYl4jcVY+bxMbOkWSmypnOyObsSgeqyJHDHUldn4ZVM3oHit0TROx7tHKM1OIztdc2swo4LqtfaPTbG3zR3VzqCJaS9tLg/rSxKnPfV8Gp1uXjzey4PXVPHc4e6Ip9EMYVgG6kKb2uKsqIfTqseqrqVIRII37fn2H5xRNU7Hu4w0Xr3DzqWrcxiemOWDl5ZFrTPoRM8IPgkbEjSNpzpAj9y5hYduqIlKjcUQhmWgFoGsKUm09nn4Y7Mrah7rie4RCrNSyMtMjM15FuPdG4tJtZiiumnP5IwXp8uTsPUFlUanm2OdioPywzej1xmkOkWJKgzB89ogOh1xhjAsA/U/5KWTfcz6JA9EcdMeo/CssLetH69PkpeRHLW2xVM9o/hk4tYXYM5r/foH6wB476biqHUGHesawZamzMpKRILntalEusZiCMMyqXfY+bMtShHosorcqIjC1KyX1j5PQhsmmDNO76krZmhihm98cFNUjNPx7sT2WGHOa73pkmJKs9MYmZiNWmfQ8a5h1hdnJcyOhVrAEIZl0uh080JTD8lmwZ9a3RE1SmpNo7XPw6xPsq44K+GGhwWjGqebLynG65NY05KiYpyOd41gTUmiLCcxPVaY77VuLLVxtHM4Kp1Bs14fJ3tGE1qUY4EhDMsgUAS6awvbKnIpyU6LqMeq1jSeO6QsCJ+a8Sbc8LBgVOO0qTwbUIQiUsZJFWXwp/FKstjb1p+wohzMxjIbZ/rHozLps809xtSsL+HrO9HGEIZlEFwE2lSezbmBcb7xoU0R81jVmsZ3G89gNsE/vXAy4YaHLURhVioF1hSORDBSUEX5tRY3J7pHyEm3JLQoB7OxVLkGxzojn0Y61qW8x4YEblWNBYYwLIPgcHpTmY1Zn8SWZoloOF3vsJOTbsHrg7t3JN7wsMWoK7NxuGMoYq+vivJ9PzzA+LSXP7W4DVH2owrDkQgKgxqxHescISXJhCM/I6HTqNHGEIYVUlc2l86IJA3NffSMTLGlPDvhhoddiLqybNrcY4xORi6dUe+ws6NSGZr33k2RX22qF3IykinLSaMpgsKgRmx72/qpLbLy5pkBI2KLIoYwrJBiWyr2zJSIeq2NTjd/9cODAHziqsqEGx52ITaW2ZBSaWWMFI1ON3845SLJJPjtsR7jugehFqAjRb3DziN3bOF414i/NTzx9mCIJYYwrBAhBJvLbRw+FzlhaOoY5rYtygD2kEsAABWpSURBVN5FW1ZlJ9zwsAtR509nNEVImNVGg9LsNLZV5PDoXVsNUQ5iY5mNs/3jDI9HLmIrsqUiUcQ/EfdgiCWGMIRApNMZu3c6GBqfoSgrlWKb0iqZaMPDFiMvM4XS7LSIiWRTxzDf+NAm2gfG2boqxxDl81DrDEe7Inc9nnpL2YPhrstXGWnUKGMIQwjU+dMZkSzCHTo3xJZV2RF7fT1TV2aLmKHevdNBenISsz7J1lU5gCHKKnsanExOK/tuq5/9cBeGG51unmg8Q0aymS/vusRIo0YZQxhCYJO/AH34XGSMk9szRfvAuCEMC7CnwUlWmoX2gfGIjeA+0D4IYFz/86grs/GZnx8h35rMkY7hiEy5beoYxp6ZzPY1uZhMwojYoowhDCGQk5HMqtz0iOW5D7Urr7vF77EazFFXZuOFI8oI7iOdkTFOB84OUpGXnvCDC89HNdLD47O82uKKSGH49svK6Rya5NLVc599I2KLHiEJgxAiVwjxohCixf/7bRZMCHG1EOJQ0M+kEOI2/2PfFUKcDnpscyjnE232NDgpyU6d58WE02s9eG6QJJPgEmNxz9uod9j5xgeVj8tjr4R/BLeUkgPtQ4E0ksF86h12tq/JZWRylts2h7+V96DfKbp0dW5YX9dgaYQaMXwWeFlKWQ287L89DynlK1LKzVLKzcA1wDjwu6BDPq0+LqU8FOL5RBU1x905NIFrdCrsXuvB9iHWFWeRlpyYezxfjOs3FJKdZmFvW3/Yu1bODUzg9kyxZbUhDAvR6HQHIuUf7zsX9tz/vrMDmE2CTeWGUxQLQhWGXcAT/r+fAG67yPEfAH4tpRwP8X01Qb3Dzv++oQaAf/zlsbB6rV6f5LBReL4gjU43EzNeks2C779+NqzGSa0vbDWu/9tQHaDH7roUa2oSl6/JC3theP/ZQdYXZ5GenBS21zRYOqEKQ6GUshvA/7vgIsffDvzovPu+KoRoEkI8LIRYNJkrhLhXCLFPCLHP5XKFdtZh5M7LV2EW8Kum7rB4reoogJa+UcamvWxZlW2MAlgA1Th94qpKpr2Sh65fG1bjdKB9kIxkMzWFibtj3mKoM8PeUW1ne0UuZ/rHwloYnvH6OHxueF59wSC6XFQYhBAvCSGOLvCzazlvJIQoBjYCvw26+3NALXAZkAt8ZrHnSykfl1Juk1Juy8/PX85bR5QD7YMIIcK2cYw6CuDp/R0ASIkxCmABVOP0kStWA+CZ8oZsnIInqh5oH2RTeTZvnhkwRPk8gmeGXV6ZS5trjKr8zLAVhk90jzAx4zWEIYZcVBiklNdJKS9Z4OdZoNdv8FXD33eBl/oQ8IyUMrAaTErZLRWmgO8A20P750QX1Wt9/9Yy+sem+ac/uyRkr1Xt+Pje3rOkJJn4yvMnjFEAC6AapwJrKlUFmext6w+5a0UV5VdO9nKie5QCa4ohyhdhR2UeAG+cHgj5tVRh3n9WSeNtq8gxouUYEWoq6TngHv/f9wDPXuDYOzgvjRQkKgKlPnE0xPOJKqrXesflqwCY9sqwhNRXVOaRbBZMzfqMUQBL4IrKPPadGWDG6wvpdVRRfvCpQ3h9kpdO9BmifBHWF2eRmZLEG6f7Q34tVZh/c6yHElsqp91jhjDHiFCF4WvA9UKIFuB6/22EENuEEP+lHiSEqADKgYbznv+kEOIIcASwA18J8Xyiiuq1biy1YU1NorHVHZZe66f3d+CZ8nJNbYExCmAJ1DvyGJ/2hmU9Sb3Dzroipa5w5/ZyQxQuQpLZxLaKHF5vCz1iUIX5rdMDZKQkGYPzYkhIwiCl7JdSXiulrPb/HvDfv09K+fGg485IKUullL7znn+NlHKjPzV1t5TSE8r5xAqzSbCjMo/XwmDAG51uvvjcMQC+fJsxCmApXO5PZ+x1hu61Njrd7G8fotiWytMHOo3rvgR2VObR2ufB7ZkK+bVKbGn4JLT0eYxoOYYYK5/DxJWOPM4NTHBuILRO3KaOYRz5GVQXZFKanWaMAlgCuRnJ1BZZ2dsWmjA0Ot3c9+QBvD7J3TtWG6K8BPY0OEn3r7N5019nCKUu8F+vtgFwzxWrjWg5hhjCECaurFI8m9daQ/sg33NFBad6PexcO9d5ZYwCuDB7GpxU5KWz78wgU7PKcLeVGKemjmH+fFs5AFfXFBiivATqymw8/GIzKUkmXm/rD2mRZ6PTzVNvnaMsJ5V/NAbnxRRDGMLESyd6yU6z8FpQOmMlxun10/1Mz/rYWaOdllytU1dm40+t/UzN+jjUPrRi47R7p4Nzg+MUZqWwrlipMxiifGHqHXYevWsrPil5vqk7pLrAm6cH8EnJe+pKA69tCHNsMIQhTGwqz2Z82kvDqT6klCs2Tg2nXKRaTFxWYcyIWSr1DjsPf0iZm/SNF5tXbJxmvD5ebXZzdU0BSqOcwVKod9i5rCKX/rFpbg1hC1RHfiY+Cdetm1snawhzbDCEIUzUO+x89MoKRiZn+btfHFmxcfpjs4sdlXmkWoz5SMvh+g2FFFpTeOP0wIqLlvvPDjI6Ncu7ai62gN8gmEanO7DFaihzk14+0UtOusWYJqwBDGEIIx+trwDgh2+cW5ZxUhf2tPeP0+YeY+fafGNhzzJpdLoZmZoF4Im9K5ub9MqpPixmwTuqjU6YpaJGxt++eyt1ZTaKs1JXVBeY9fr4Q7OLq2sKMJuMaC3WGMIQRs70j5FkEuSkW5bVUaEu7PlO42kAslKTjIU9y0A1Tv/ygTqEUFIRSzVOwWMwXjnZx/Y1uTR1DBmivETURZ71DjvvqSumzT3G/33PumXXBQ60DzE0PsO16wojdKYGy8EQhjChGqePXlnB4PgMn7quesnGSS2y/eD1s1hTk/jqCyeNhT3LQDVOt9SVsGNNHgfah3jkjqUVLVVRfu5QJ829HtbkZRiivAyC5ybdUlcCQNfQ5JLrAqowv3yiF4tZcNVauxEtawBDGMKEapwevLaalCQTzb2eZXVUrM7LYMYrGZ2cNRb2LJNg47Rrcwmn3WNkpCQtyTipovzZnx8B4JdN3YYor5DS7DS2rsrml4e7lvwcVZh/2dTF5WvyONI5bAizBjCEIUyoxikr1cING4p47nAXl67OWbLn9PXfnATgo/XGwp5QuHljMclmE7841Lnk5+xYk0eyWfkqfOSK1YYorJA9DU42lNg42TNKa58yxOBi3n+9w85nbqqla2gSITDGYGgEQxgiwPu3ljI8McMrJy80bHaOhuY+nj3UxdZV2fzDrcbCnlD40Zvt1JXb+OXhbrw+CVzcOH27oZWhiRlu3FDIk4Yor5i6MlsgWvhVU9eSW7bfON1PkknwaovbiJY1giEMEeB41wjZaRae3j/ntV7IOP1sfwcS+Ovr1gLGwp5QqCuzcbJ7FLdH2Wr1Ysap0enm4RdbyEm38MidWw1RDoF6h53H7t5KkknwROOZJXn/nUMT/OL/t3fmwVVVdxz//HgJmyBbAIGghkUULWtKKYhjgUGIVoojiqOVVixjHUvtMlMsM45W7Yw6VYujMrhM1aGKa4uCVXABOwxo2IMJkCBIWELCJkhZkvfrH/c8vO/xXvKStwK/z8yd3HfO7777vb97cn73LPedNTsJNBNmjO5jreUswQJDChh0YXuO1dbxSVkV+45EXwvaPxtm18FjXNypNTkip4KHvdjTNEJBVYCHF5Y2WDl9XFpFbVC5c1QvcgPNLCgnyIjeeVx1SWcOHD3JyN6dGnz6f/i9rwgqPD55IL8f188Cc5ZggSEFjOidx4PXX0FQ4e55q6NWTqFBt9dWfkPx9gNc2SeP37xug27J4Op+XRiY355New4z9rIup1VO/qB85FgdLXOb0bdLGwvKSWB5RQ1rvjlA+9a5LNywm6WbT+9ODfn/4NETLCmrYlSfPPLaNGfO0goLzFmCBYYUcfMPe9K3SxtWfr2fcZd3Pa1yCv0DPPDeRgLNYOEGmw2TLJZX1LB9/3ec1zzA26t38vmW8DXCTy0IU7Kbd9fuZGTvPGa+s8GCcoKEWsbP3DqEp24eRFDhrldXn/b0H/L/wwtLOVmnXDewe1iL2gJz5kkoMIjIZBHZKCJBESmsx268iGwSkXIRmelLLxCRlSKyRUTmi0jzRPRkE8sraqg+cpzcgPDGFzvCnpxC4w17vz3O8dogdUH4+XCbDZMM/JXTuMu7UhdUpr+y6lTltLyihvWVh3h6irdS24naIMXbD1hQTgL+l93K9hxmcM/23u+GlXs/LBkq9yN65/HYjQN4e1UlF3dqzaP/sfd2so1EWwwlwA3AslgGIhIAngEmAP2BW0Skv8t+FHhSVfsCB4BpCerJCkKV07O3DuF3Yy8hCNz5cjH3vbOe5z+v4J5/riHQDP7w5lq3yE9HG3RLEv7KafLQnuQGhBN1dfx9yZZTvh/Qox2LSnZzotZbN2qqTVFNCv73SQbkt2NrzXecDAb5bFP1977Pb8eeQ8d4cMFGFNi276jNRMpCEl3BrVRVNzVgNgwoV9WtqnoCeB2Y6NZ5Hg285exexlv3+YzHXznd/ZM+jL60MyfrlCWlVTyysIwJV3TliY82owqtcpsxY0xfG3RLEv7KaUSfPJ64aRB1Qfhq1yEeWVjGTUPz+aBkD/NWfgPApME9LCingBG983jutiHkBppR4nw/ul9n2rXKpWj2MnYc+B+tcgM2EylLSccYQw9gh+9zpUvrBBxU1dqI9DMef+UEMPuWIXRp24LqwycAmLdyB7VBpVVugLm3FzKid54NuqWInw7sTtEPunH4uLeAz5xlW3l1xXYAZhVdypM3D7KgnCJG9M5j2sgCwHsAemv1Tq6d/V/2f3eS1s0DvPiLQpuJlKU0GBhEZImIlETZJsZ5jmg/laj1pMfSMV1EikWkuLq6OpZZVrK+8iC1QWX6qALOb5nDkAvbc7JOmXZlQVgAsUG35LO8ooYVW/cxY3Qf2rfKZaAb4Jw0uDu/usrztQXl1LC8oobXvtzBjNF9aJkb4EcF3hojQy/qwAtTC79v2Zn/s46chgxUdWyC56gEevo+5wO7gBqgvYjkuFZDKD2WjrnAXIDCwsKYASTbCI03hLqWOp/fgr8uLDvVhTE8jrneRtOI9H3bVjmnfL90czXLK2rCKie7D8mjId9HYv7PLtLRlfQl0NfNQGoOTAEWqKoCnwI3OrupwL/ToCet+McbllfU8NxnW/nztZfS74K21oROMeb7zGG+P7MRr35u4sEik4Cngc7AQWCtql4jIt2BF1S1yNkVAU8BAeAlVX3EpffCG4zuCKwBblPV4w2dt7CwUIuLi5usO1PMWVrBgPx2YU9GoemT1oWUWsz3mcN8nz2IyCpVjflqwSm7RAJDpjhTA4NhGEYmiTcw2JvPhmEYRhgWGAzDMIwwLDAYhmEYYVhgMAzDMMKwwGAYhmGEcUbOShKRamB7Ew/Pw3u5LtswXY3DdDUO09U4zlZdF6lq54aMzsjAkAgiUhzPdK10Y7oah+lqHKarcZzruqwryTAMwwjDAoNhGIYRxrkYGOZmWkAMTFfjMF2Nw3Q1jnNa1zk3xmAYhmHUz7nYYjAMwzDq4awMDCIyWUQ2ikhQRAoj8u4TkXIR2SQi18Q4vkBEVorIFhGZ734uPNka54vIWrdtE5G1Mey2icgGZ5fyXw4UkQdEZKdPW1EMu/HOh+UiMjMNuh4XkTIRWS8i74pI+xh2afFXQ9cvIi3cPS53ZeniVGnxnbOniHwqIqWu/P82is3VInLId3/vT7Uud95674t4zHb+Wi8iQ9KgqZ/PD2tF5FsRuTfCJi3+EpGXRGSviJT40jqKyGJXDy0WkQ4xjp3qbLaIyNSkCFLVs24DLgP6AZ8Bhb70/sA6oAVQAFQAgSjHvwFMcftzgF+nWO/fgPtj5G0D8tLouweAPzZgE3C+6wU0dz7tn2Jd44Act/8o8Gim/BXP9QN3A3Pc/hRgfhruXTdgiNtvC2yOoutq4P10lad47wtQBHyAt7LjcGBlmvUFgD148/zT7i/gKmAIUOJLewyY6fZnRivzeEsWbHV/O7j9DonqOStbDKpaqqqbomRNBF5X1eOq+jVQDgzzG4iIAKOBt1zSy8DPUqXVne8m4LVUnSMFDAPKVXWrqp7AW1Mj3qVem4SqfqTfrw++Am/Fv0wRz/VPxCs74JWlMe5epwxV3a2qq93+YaCUM2cd9YnAK+qxAm91x25pPP8YoEJVm/ribEKo6jJgf0SyvwzFqoeuARar6n5VPQAsBsYnquesDAz10APY4ftcyen/OJ2Ag75KKJpNMhkFVKnqlhj5CnwkIqtEZHoKdfi5xzXnX4rRfI3Hj6nkDryny2ikw1/xXP8pG1eWDuGVrbTguq4GAyujZP9YRNaJyAcicnmaJDV0XzJdpqYQ++EsE/4C6Kqqu8EL+kCXKDYp8VuDaz5nKyKyBLggStYsVY21RGi0J7bIaVnx2MRFnBpvof7WwkhV3SUiXYDFIlLmni6aTH26gOeAh/Cu+SG8bq47Ir8iyrEJT2+Lx18iMguoBebF+Jqk+yua1ChpKStHjUVE2gBvA/eq6rcR2avxukuOuPGjfwF90yCrofuSSX81B64H7ouSnSl/xUtK/HbGBgZVHduEwyqBnr7P+cCuCJsavGZsjnvSi2aTFI0ikgPcAAyt5zt2ub97ReRdvG6MhCq6eH0nIs8D70fJisePSdflBtauA8ao62CN8h1J91cU4rn+kE2lu8/tOL2rIOmISC5eUJinqu9E5vsDhaouEpFnRSRPVVP6u0Bx3JeUlKk4mQCsVtWqyIxM+ctRJSLdVHW361bbG8WmEm8cJEQ+3thqQpxrXUkLgCluxkgBXuT/wm/gKpxPgRtd0lQgVgskUcYCZapaGS1TRM4TkbahfbwB2JJotskiol93UozzfQn0FW/2VnO8ZviCFOsaD/wJuF5Vj8awSZe/4rn+BXhlB7yy9EmsYJYs3BjGi0Cpqj4Rw+aC0FiHiAzDqwP2pVhXPPdlAXC7m500HDgU6kZJAzFb7Znwlw9/GYpVD30IjBORDq7bd5xLS4xUj7ZnYsOr0CqB40AV8KEvbxbejJJNwARf+iKgu9vvhRcwyoE3gRYp0vkP4K6ItO7AIp+OdW7biNelkmrfvQpsANa7gtktUpf7XIQ366UiTbrK8fpS17ptTqSudPor2vUDf8ELXAAtXdkpd2WpVxp8dCVeN8J6n5+KgLtC5Qy4x/lmHd4g/og06Ip6XyJ0CfCM8+cGfLMJU6ytNV5F386XlnZ/4QWm3cBJV3dNwxuT+hjY4v52dLaFwAu+Y+9w5awc+GUy9Nibz4ZhGEYY51pXkmEYhtEAFhgMwzCMMCwwGIZhGGFYYDAMwzDCsMBgGIZhhGGBwTAMwwjDAoNhGIYRhgUGwzAMI4z/A12J8HT+rUSjAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 在-10到10之间生成一个数列，共100个数\n",
    "x = np.linspace(-10, 10, 100)\n",
    "# 用正弦函数创建第二个数组\n",
    "y = np.sin(x)\n",
    "# plot函数绘制一个数组关于另一个数组的折线图\n",
    "plt.plot(x, y, marker='x')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Location</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>John</td>\n",
       "      <td>New York</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Anna</td>\n",
       "      <td>Paris</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Peter</td>\n",
       "      <td>Berlin</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Linda</td>\n",
       "      <td>London</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Name  Location  Age\n",
       "0   John  New York   24\n",
       "1   Anna     Paris   13\n",
       "2  Peter    Berlin   53\n",
       "3  Linda    London   33"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from IPython.display import display\n",
    "\n",
    "# 创建关于人的简单数据集\n",
    "data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],\n",
    "       'Location': ['New York', 'Paris', 'Berlin', 'London'],\n",
    "       'Age': [24, 13, 53, 33]\n",
    "       }\n",
    "\n",
    "data_panda = pd.DataFrame(data)\n",
    "display(data_panda)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Location</th>\n",
       "      <th>Age</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Peter</td>\n",
       "      <td>Berlin</td>\n",
       "      <td>53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Linda</td>\n",
       "      <td>London</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Name Location  Age\n",
       "2  Peter   Berlin   53\n",
       "3  Linda   London   33"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(data_panda[data_panda.Age > 30])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Python Version: 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37) \n",
      "[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]\n",
      "pandas version: 0.23.0\n",
      "matplotlib version: 2.2.2\n",
      "numpy version: 1.14.3\n",
      "scipy version: 1.1.0\n",
      "IPython version: 6.4.0\n",
      "scikit-learn version: 0.19.1\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "print(\"Python Version: {}\".format(sys.version))\n",
    "\n",
    "import pandas as pd\n",
    "print(\"pandas version: {}\".format(pd.__version__))\n",
    "\n",
    "import matplotlib\n",
    "print(\"matplotlib version: {}\".format(matplotlib.__version__))\n",
    "\n",
    "import numpy as np\n",
    "print(\"numpy version: {}\".format(np.__version__))\n",
    "\n",
    "import scipy as sp\n",
    "print(\"scipy version: {}\".format(sp.__version__))\n",
    "\n",
    "import IPython\n",
    "print(\"IPython version: {}\".format(IPython.__version__))\n",
    "\n",
    "import sklearn\n",
    "print(\"scikit-learn version: {}\".format(sklearn.__version__))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
